#ifndef _AK_OSD_EX_H_
#define _AK_OSD_EX_H_

#define OSD_EX_NAME_LEN		50
#define OSD_EX_FONT_SIZE 	24

struct osd_ex_info {
	time_t time_bak;

	int position;
	char name[OSD_EX_NAME_LEN];
	int time_switch;
	int date_format;
	int hour_format;
	int week_format;
	int xpos_main;
	int ypos_main;
	int xpos_sub;
	int ypos_sub;
	int on_right_side;
};

/**
 * ak_osd_ex_get_version - get osd ex version
 * return: version string
 */
const char* ak_osd_ex_get_version(void);

/**
 * ak_osd_ex_disp_name - display osd name
 * osd_ex[IN]: osd config info
 * return: 0 success, -1 failed
 */
int ak_osd_ex_disp_name(struct osd_ex_info *osd_ex);

/**
 * ak_osd_ex_disp_date_time - display osd date and time
 * osd_ex[IN]: osd config info
 * return: 0 success, -1 failed
 */
int ak_osd_ex_disp_date_time(struct osd_ex_info *osd_ex);

/**
 * ak_osd_ex_stat_video - display video stat info via osd
 * channel[IN]: channel no.
 * venc_handle[IN]: venc handle
 * stream_len[IN]: stream len
 * osd_ex[IN]: osd config info
 * return: 0 success, -1 failed
 */
int ak_osd_ex_stat_video(int channel, void *venc_handle,
					unsigned int stream_len, struct osd_ex_info *osd_ex);

/**
 * ak_osd_ex_init_env - init osd working env
 * vi_handle[IN]: vi handle
 * return: 0 success, -1 failed
 */
int ak_osd_ex_init_env(void *vi_handle);

#endif
